package br.com.fafica.librarycourier.usuario.control;

import br.com.fafica.librarycourier.RepositorioException;
import br.com.fafica.librarycourier.usuario.model.CadastroUsuario;
import br.com.fafica.librarycourier.usuario.model.IRepositorioUsuario;
import br.com.fafica.librarycourier.usuario.model.Usuario;
import br.com.fafica.librarycourier.usuario.model.UsuarioJaCadastradoException;
import br.com.fafica.librarycourier.usuario.model.UsuarioNaoEncontradoException;

public class ControladorUsuario {
	
	private IRepositorioUsuario RepositorioUsuario;
	
	public ControladorUsuario(IRepositorioUsuario repositorioUsuario){
		this.RepositorioUsuario = RepositorioUsuario;
	}
	
	public void cadastrar(Usuario usuario) throws UsuarioJaCadastradoException, RepositorioException{
		CadastroUsuario objCadastroUsuario = new CadastroUsuario(this.RepositorioUsuario);
		objCadastroUsuario.cadastrar(usuario);
	}
	
	public void remover (String matricula) throws UsuarioNaoEncontradoException, RepositorioException{
		CadastroUsuario objCadastroUsuario = new CadastroUsuario(this.RepositorioUsuario);
		objCadastroUsuario.remover(matricula);
	}
	
	public Usuario procurar(String matricula) throws UsuarioNaoEncontradoException, RepositorioException{
		CadastroUsuario objCadastroUsuario = new CadastroUsuario(this.RepositorioUsuario);
		return objCadastroUsuario.procurar(matricula);
	}
	
	public void atualizar (Usuario usuario) throws UsuarioNaoEncontradoException, RepositorioException{
		CadastroUsuario objCadastroUsuario = new CadastroUsuario(this.RepositorioUsuario);
		objCadastroUsuario.atualizar(usuario);
	}
}
